package com.ruoyi.training.mapper;

import java.util.ArrayList;
import java.util.List;

import com.ruoyi.examination.domain.ExamRecord;
import com.ruoyi.examination.domain.ExamRecordSpecial;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.training.domain.Students;
import org.apache.ibatis.annotations.Param;

/**
 * 学员Mapper接口
 * 
 * @author ruoyi
 * @date 2025-09-16
 */
public interface StudentsMapper
{
    /**
     * 查询学员
     * 
     * @param studentId 学员主键
     * @return 学员
     */
    public Students selectStudentsByStudentId(String studentId);

    /**
     * 查询学员列表
     * 
     * @param students 学员
     * @return 学员集合
     */
    public List<Students> selectStudentsList(Students students);

    /**
     * 新增学员
     * 
     * @param students 学员
     * @return 结果
     */
    public int insertStudents(Students students);

    /**
     * 修改学员
     * 
     * @param students 学员
     * @return 结果
     */
    public int updateStudents(Students students);

    /**
     * 删除学员
     * 
     * @param studentId 学员主键
     * @return 结果
     */
    public int deleteStudentsByStudentId(String studentId);

    /**
     * 批量删除学员
     * 
     * @param studentIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteStudentsByStudentIds(@Param("studentIds") String[] studentIds);

    /**
     * 通过证件号查询学员
     *lqx
     */
    public Students checkUserIdNumber(String idNumber);
    // 条件查询通过证件编号和姓名
    public List<Students> selectByStudentIdsAndConditions(@Param("strings")ArrayList<String> strings,@Param("idNumber") String idNumber,@Param("studentName") String studentName);

    /**
     * 通过ids查询学员信息
     * lqx
     * */
    public List<Students> selectStudentsByIds(@Param("ids") List<String> ids);

    public List<Students> selectStudentsByStudentNoticeId(@Param("studentNoticeId")String studentNoticeId);

    /**
     * 查询内训用户列表
     * lqx
     */
    public List<SysUser> selectUserList(SysUser sysUser);

    /**
     * 通过手机号查询学员
     *lqx
     */
    public Students checkUserPhoneNumber(String phoneNumber);

    //新增用户
    public void insertUser(SysUser sysUser);

    //通过身份证号查询用户是否存在
    public SysUser selectUserByIdNumber(String idNumber);

    //修改用户状态
    void updateUser(SysUser sysUser1);

    //通过studentId查询出sysUser
    public SysUser selectSysUserByStudentId(String studentId);

    //通过学员id查询经营性成绩
    public List<ExamRecord> selectExamListByStudentId(String studentId);

    //通过学员id查询特设成绩
    public List<ExamRecordSpecial> selectExamSpecialListByStudentId(String studentId);
}
